<?php

class ClientsController extends AppController {

    public $name = 'Clients';
    public $uses = array('Estado', 'Municipio', 'Parroquia', 'Usuario', 'UsuarioPerfil');
    public $helpers = array('Html', 'Form',);
    public $components = array('Util',);

    public function index() {
        $this->set('listado', $this->UsuarioPerfil->find('all', array('conditions' => array('Usuario.estatus >' => 0, 'UsuarioPerfil.perfil_id' => 2), 'order' => array('Usuario.cedula'))));
        $this->set('estados', $this->Util->estados());
    }

    public function nuevo() {
        if ($this->request->is('post')) {
            $this->request->data['Usuario']['contrasena'] = $this->Util->clave($this->request->data['Usuario']['contrasena']);
            $this->request->data['Usuario']['cedula'] = $this->Util->formatocedula($this->request->data['Usuario']['cedula']);
            if ($this->Usuario->save($this->request->data['Usuario'])) {
                $this->request->data['UsuarioPerfil']['usuario_id'] = $this->Usuario->id;
                $this->UsuarioPerfil->save($this->request->data['UsuarioPerfil']);
                $this->Session->setFlash('Registro Guardado', 'default', array('class' => 'success'));
                return $this->redirect(array('action' => 'index'));
            } else
                $this->Session->setFlash('Ocurri&oacute; un error, intente nuevamente', 'default', array('class' => 'error-message'));
        }
    }

    public function editar($id = null) {
        $id = $this->Util->id_decode($id);
        $data = $this->UsuarioPerfil->findByUsuarioId($id);
        
        if (!$data) {
            $this->Session->setFlash('Registro Inv&aacute;lido', 'default', array('class' => 'error-message'));
            return $this->redirect(array('action' => 'index'));
        }

        if ($this->request->data) {
            $this->Usuario->id = $id;
            $this->request->data['Usuario']['id'] = $id;
            $this->request->data['Usuario']['cedula'] = $this->Util->formatocedula($this->request->data['Usuario']['cedula']);
            $this->request->data['UsuarioPerfil']['id'] = $this->Util->id_decode($this->request->data['UsuarioPerfil']['id']);
            if ($this->Usuario->saveAssociated($this->request->data)) {
                $this->Session->setFlash('Registro Actualizado', 'default', array('class' => 'success'));
                return $this->redirect(array('action' => 'index'));
            } else
                $this->Session->setFlash('Ocurri&oacute; un error, intente nuevamente', 'default', array('class' => 'error-message'));
        } else {
            $data['Usuario']['id'] = $this->Util->id($id);
            $data['UsuarioPerfil']['id'] = $this->Util->id($data['UsuarioPerfil']['id']);
            $this->request->data = $data;
            $this->set('estados', $this->Util->estados());
        }
    }

    function eliminar($id) {
        if (!$this->request->is('post')) {
            throw new MethodNotAllowedException();
        }
        $id = $this->Util->id_decode($id);
        $this->request->data['Usuario']['id'] = $id;
        $this->request->data['Usuario']['estatus'] = 0;
        if ($this->Usuario->save($this->request->data)) {
            $this->Session->setFlash('Registro Eliminado', 'default', array('class' => 'success'));
            return $this->redirect(array('action' => 'index'));
        }
    }
    
    public function buscarCliente() {
        extract($this->request->data);
        $this->autoRender = false;
        $cedula = $this->Util->formatocedula($cedula);
        $data = $this->UsuarioPerfil->find('first', array('fields' => array('Usuario.id', 'Usuario.cedula', 'Usuario.nombre', 'Usuario.apellido'), 'conditions' => array('Usuario.cedula' => $cedula, 'Usuario.estatus' => 1, 'UsuarioPerfil.perfil_id' => 2)));
        
        if(!empty($data)) {
            $data['Usuario']['id'] = $this->Util->id($data['Usuario']['id']);
            return json_encode($data['Usuario']);
        } else
            return null;
    }

}
